package com.whsxt.service;

import com.github.pagehelper.PageInfo;
import com.whsxt.domain.Role;
import com.whsxt.dto.RoleDto;

import java.util.List;
import java.util.Set;

public interface RoleService {

    /**
     * 分页查询角色的数据
     * @param roleDto 查询条件
     * @return 封装角色分页数据的信息
     */
    PageInfo<Role> findPage(RoleDto roleDto);

    /**
     * 加载所有的角色数据
     * @param
     * @return
     */
    List<Role> loadRoles();

    /**
     * 通过用户id 查询出所拥有的角色id
     * @param userId
     * @return
     */
    List<Integer> selectRoleIdsByUserId(Integer userId);

    /**
     * 为角色赋予权限
     * @param roleId
     * @param permIds
     * @return
     */
    boolean assign(Integer roleId, Integer[] permIds);

    /**
     * 通过拥护ID查询所有的角色
     * @param userId
     * @return
     */
    List<Role> selectRolesByUserId(Integer userId);

    /**
     * 新增角色
     * @param roleDto
     * @return
     */
    boolean save(RoleDto roleDto);

    /**
     * 批量删除角色
     * @param ids
     * @return
     */
    boolean batchRemove(List<Integer> ids);

    /**
     * 修改角色数据
     * @param roleDto
     * @return
     */
    boolean update(RoleDto roleDto);
}
